package com.bjpowernode.ba01;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

/**
 * @Component: 创建对象的, 等同于<bean>标签的功能
 * 参数:value 默认是这个类的对象名称全小写,也就是<bean>的id值
 * value的值是唯一的,创建的对象在spring容器中就一个.
 * 定义注解的位置:在类的上面定义
 * @Component(value = "myStudent")这句话的作用:
 * <bean id="myStudent" class="com.bjpowernode.ba01.Student"></>
 */
// 使用Value 指定对象名称 @Component(value = "myStudent")
// 省略value @Component("myStudent")
// 不指定对象名称,由spring提供默认名称:类到(首)字母小写

/**
 * Spring中和@Component功能一致,创建对象到注解还有:
 * 1.@Repository(用在持久类的上面):放在dao层实现类上,标示创建dao对象,dao对象可以访问数据库的.
 * 2.@Service(用在业务的实现类上面):放在service的实现类上面,创建service对象,service对象是做业务处理的,
 * 可以有事务功能等.
 * 3.@Controller(用在控制器的上励):在控制器(处理器)类的上面,创建控制器对象的,
 * 控制器对象,能够接受用户提交的参数,显示请求的处理结果。
 * 以上三个注解的使用语法和 Componentー样的。都能创建对象,但是这三个注解还有额外的功能。
 * @Repository,@Service,@Controller是给项目都对象做分层用都
 * */
@Component
public class Student {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
